package com.tfjybj.itoo.exam.provider.service;

import com.dmsdbj.itoo.tool.base.service.BaseServicePlus;
import com.tfjybj.itoo.exam.entity.CollectionRecordEntity;
import com.tfjybj.itoo.exam.model.*;

import java.util.List;
import java.util.Map;


/**
 * CollectionRecordService接口
 * collectionRecord表
 *
 * @author 王雪芬
 * @version 2.0.0
 * @since 2.0.0 2019-01-26 18:24:57
 */
public interface CollectionRecordService extends BaseServicePlus<CollectionRecordEntity> {
    /**
     * 插入错题
     *
     * @return
     */
    Boolean insertWrongRecord();

    /**
     * 根据学生查询错题课程和小练
     *
     * @param studentId
     * @return
     */
    Map<String, List<ExamCourseModel>> queryCourseExamination(Integer status, String studentId);

    /**
     * 根据小练，章节题型显示学生错题信息-李娜-2019年1月29日
     *
     * @param examineeId
     * @param examinationId
     * @param questionTypeId
     * @param questionClassfiyId
     * @param status
     * @return
     * @author 李娜
     */
    ExamPaperModel queryWrongQuestion(String examineeId, String examinationId,
                                      String questionTypeId, String questionClassfiyId, Integer status, String templateId);

    /**
     * 生交卷时把该学生的错题存入错题记录表
     *
     * @return
     */
    Boolean insertWrongByExamineeId(String examineeId);

    /**
     * 根据小练和考生查询错题的章节
     *
     * @param status
     * @param examinationId
     * @param examineeId
     * @return
     * @author 李娜
     */
    List<ChapterQuestionTypeModel> queryChapterType(Integer status, String examinationId, String examineeId);

    /**
     * 根据小练和考生章节查询错题的题型
     *
     * @param status
     * @param examinationId
     * @param examineeId
     * @param chapterId
     * @return
     */
    List<ChapterQuestionTypeModel> queryQuestionType(Integer status, String examinationId, String examineeId, String chapterId);

    /**
     * 添加小题到CollectionRecord表
     *
     * @param model CollectionRecordModel
     * @return 添加小题到收藏夹
     * @author 刘梦娇
     * @since 2.0.0 2019年1月29日11:16:22
     */
    boolean insertCollection(CollectionRecordModel model);


    boolean cancelCollection(String examinationId, String examineeId, String questionId);


    /**
     * 课程练习-根据课程id和题型id查询试题及选项
     *
     * @param courseId
     * @param questionTypeId
     * @return 是否查询成功
     * @author 贾建清
     * @since 2.0.0 2019-3-24 19:14:31
     */
    List<QuestionMainModel> queryQuestionOption(String courseId, String questionTypeId);
}
